'use strict';

const { Service } = require('egg');
class LunboService extends Service {
  async selectAll() { // 查询全部轮播图
    const data = await this.app.model.Lunbo.find({});
    return data;
  }
  /**
   * 我们来分析一下轮播图如何写
   * 1.首先轮播图的id不需要我们关心了,egg框架自动生成
   * 2.当用户上传以后,就会上传到oss,所以我们需要获取到oss中的路径即可
   * 3.标题获取
   * 4.当用户更换照片或者标题时,根据_id查询,或者数据,更改数据
   */
  async addImage(imgTitle, imgUrl) { // 添加轮播图
    const image = await this.app.model.Lunbo.find({ imgTitle });
    if (image.length === 0) {
      const model = new this.app.model.Lunbo({ // 创建新的轮播图对象,并且保存在数据库中
        imgTitle,
        imgUrl,
      });
      await model.save();
      return { code: 200, data: model };
    } else {
      return { code: 501, msg: '标题不能相同,上传失败!' };
    }
  }
  async deleteImage(id) { // 根据id删除轮播图
    const data = await this.app.model.Lunbo.remove({ _id: id });
    if (data.n >= 1) {
      return { code: 200, data };
    } else {
      return { code: 501, msg: '删除失败' };
    }
  }
  async deleteAllLunbo() { // 删除全部轮播图
    const data = await this.app.model.Lunbo.remove({});
    return data;
  }
  async updateLunbo(id, imgTitle, imgUrl) { // 根据_id更新轮播图
    const data = await this.app.model.Lunbo.update({ _id: id }, { $set: { imgTitle, imgUrl } });
    if (data.n >= 1) {
      return { code: 200, data };
    } else {
      return { code: 501, msg: '修改失败!' };
    }
  }
}
module.exports = LunboService;
